import java.util.Arrays;
import java.util.Scanner;

public class day2 {
    /**
     * 动态规划
     * DP39 字母收集
     * https://www.nowcoder.com/practice/9740ce2df0a04399a5ade1927d34c1e1?tpId=230&tqId=38954&ru=/exam/oj
     */
    public static void main2(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        char[][] s = new char[n + 1][m + 1];
        for(int i = 1;i <= n;i++) {
            char[] str = in.next().toCharArray();
            for(int j = 1;j <= m;j++) {
                s[i][j] = str[j - 1];
            }
        }

        // 定义dp[i][j]: 到达 i,j 位置后，小红最大的得分
        int[][] dp = new int[n + 1][m + 1];
        for(int i = 1;i <= n;i++) {
            for(int j = 1;j <= m;j++) {
                int x = 0;
                if(s[i][j] == 'l') {
                    x = 4;
                }else if (s[i][j] == 'o') {
                    x = 3;
                }else if (s[i][j] == 'v') {
                    x = 2;
                }else if (s[i][j] == 'e') {
                    x = 1;
                }
                dp[i][j] = Math.max(dp[i - 1][j],dp[i][j - 1]) + x;
            }
        }
        System.out.print(dp[n][m]);
    }


    /**
     * 排序 + 模拟
     * NC95 数组中的最长连续子序列
     * https://www.nowcoder.com/practice/eac1c953170243338f941959146ac4bf?tpId=196&tqId=37143&ru=/exam/oj
     */
    public int MLS (int[] arr) {
        // write code here
        // 排序 之后直接求就可以
        int n = arr.length;
        int ret = 0;
        // 排序 为升序
        Arrays.sort(arr);
        for (int i = 0; i < n;) {
            // 从i位置后面进行判断，遍历后面看是否符合连续的条件
            int j = i + 1;
            int count = 1; // i位置的本身也是一个长度
            while (j < n) {
                if (arr[j] - arr[j - 1] == 1) {
                    j++;
                    count++;
                } else if (arr[j] - arr[j - 1] == 0) {
                    j++;
                } else {
                    break;
                }
            }
            ret = Math.max(ret, count);
            i = j; //这是直接跳过判断过的区间
        }
        return ret;
    }

    /**
     * 数学
     * HJ108 求最小公倍数
     * https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3?tpId=37&tqId=21331&ru=/exam/oj
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        // a和b的 最小公倍数 = a * b / a和b的 最大公约数
        System.out.print(a * b / gcb(a,b));
    }
    public static int gcb(int a,int b) {
        if(b == 0) {
            return a;
        }
        return gcb(b,a % b);
    }}
